#ifndef _PKT_H_
#define _PKT_H_

typedef struct Pkt
{
    int used;
    int len;
    int msgid;   
    int buffd;
}Pkt;


int pkt_new(int buffd);

const char *pkt_read_utf(int fd);
int pkt_read_int(int fd);
int pkt_read_short(int fd);
int pkt_free(int pktfd);

#define MAX_PKT 8
extern Pkt s_pkts[MAX_PKT];
#define fd2pkt(fd)  (&s_pkts[fd])


#define pkt2buffd(fd) (s_pkts[fd].buffd)
#define pkt2msgid(fd) (s_pkts[fd].msgid)
#define pkt2len(fd)   (s_pkts[fd].len)
#define pkt2bodylen(fd) (s_pkts[fd].len - 8)

#endif
